--- /dev/null
+# chroot: "/etc/nsd3"
+database: "/var/lib/nsd3/nsd.db"
+# debug-mode: no
+# difffile: "/var/lib/nsd3/ixfr.db"
+hide-version: yes
+# identify the server (CH TXT ID.SERVER entry).
+# identity: "unidentified server"
+# ip6-only: no
+ipv4-edns-size: 4096
+# ipv6-edns-size: 4096
+# logfile: "/var/log/nsd.log"
+# nsid: "aabbccdd"
+pidfile: "/run/nsd3.pid"
+port: 53
+rrl-ratelimit: 200
+rrl-size: 1000000
+rrl-whitelist-ratelimit: 2000
+server-count: 1
+statistics: 3600
+tcp-count: 10
+tcp-query-count: 0
+tcp-timeout: 120
+username: nsd
+verbosity: 2
+# xfrd-reload-timeout: 10
+# xfrdfile: "/var/lib/nsd3/xfrd.state"
+zone-stats-file: "/var/log/nsd.stats"
+zonesdir: "/etc/nsd3"
--- /dev/null
+divert(-1)
+dnl changecom(`;')
+
+* outils
+define(`ALIAS', `define($1`_IP4', $2`'_IP4)')
+define(`MAKE_GETTER', `define(`$1', $`'1`_'$`'0)')
+MAKE_GETTER(`NAME')
+MAKE_GETTER(`IP4')
+define(`FQDN', `NAME($1).ZONE_DOMAIN')
+
+* ATELIERS
+define(`ATELIERS_NAME', `ateliers')
+define(`ATELIERS_IP4', `IP4(VM)')
+define(`ATELIERS_NS_NAME', `ns')
+ALIAS(`ATELIERS_NS', `ATELIERS')
+define(`ATELIERS_MX_NAME', `mx')
+ALIAS(`ATELIERS_MX', `ATELIERS')
+
+divert(0)dnl
+; vim: ft=bindzone
+
+$TTL 1d ; TTL (Time To Live) par défaut pour les enregistrements
+
+; ENREGISTREMENT « SOA » (Start Of Authority).
+@ SOA NAME(ATELIERS_NS) hostmaster (
+ ZONE_SERIAL ; Serial number.
+ 1d ; Refresh.
+ 15m ; Retry.
+ 2592000 ; Expire.
+ 1d ; TTL (Time To Live) minimum.
+ )
+
+; ENREGISTREMENTS « A » (DNS -> adresse IPv4)
+NAME(ATELIERS) A IP4(ATELIERS)
+
+@ A IP4(ATELIERS)
+git A IP4(ATELIERS)
+imap A IP4(ATELIERS_MX)
+mail A IP4(ATELIERS_MX)
+mx A IP4(ATELIERS_MX)
+ns A IP4(ATELIERS_NS)
+remorque A IP4(ATELIERS)
+smtp A IP4(ATELIERS_MX)
+submission A IP4(ATELIERS_MX)
+www A IP4(ATELIERS)
+
+; ENREGISTREMENTS « CNAME » (Canonical NAME)
+; NOTE : l'utilisation de CNAME n'est judicieuse que si la ressource pointée
+; n'est pas sous notre contrôle. Par exemple,
+; foo.example.org. CNAME foo.example.com.
+; Dans le cas contraire, le seul résultat est un traffic réseau accru,
+; et l'emploi de macros est préférable.
+; ```You keep using CNAME records. I do not think they mean what you think they mean.'''
+
+; ENREGISTREMENTS « MX » (Mail eXchange)
+; NOTE : le reverse et le forward associés au nom donné à un enregistrement MX
+; devraient correspondre. Certains antispams le vérifient, et certains (rares) admins
+; bloquent même au niveau de la session SMTP si il ne correspond pas.
+@ MX 10 NAME(ATELIERS_MX)
+
+; ENREGISTREMENTS « NS » (Name Server)
+@ NS NAME(ATELIERS_NS)
+
+; ENREGISTREMENTS "PTR" (IPv* -> name)
+; NOTE : Dans le cas d’hébergement massif de domaines virtuels derrière une même adresse IP,
+; il est recommandé de ne pas appliquer sans discernement la règle un enregistrement PTR
+; par enregistrement A (ou AAAA) : le nombre des champs PTR à renvoyer pouvant faire dépasser
+; à la réponse la taille des paquets UDP et entraîner l’utilisation du protocole TCP
+; (plus coûteux en resources) pour envoyer la réponse à la requête DNS ;
+; cf. section "4.4 Usage and deployment considerations" du document :
+; http://tools.ietf.org/html/draft-ietf-dnsop-reverse-mapping-considerations
+
+; ENREGISTREMENTS "SPF" (Sender Policy Framework)
+@ 3600 IN SPF "v=spf1 mx -all"
+@ 3600 IN TXT "v=spf1 mx -all"
+
+; ENREGISTREMENTS « SRV » (SeRVice)
+_git._tcp.git 18000 IN SRV 0 0 9418 git
+
+; ENREGISTREMENTS « SSHFP » (Secure SHell FingerPrint)
+esyscmd(sudo ssh-keygen -r $(hostname))
pre-down ip address delete $vm_ipv4/32 dev \$IFACE
EOF
}
-rule_www_configure () {
- rule adduser www \
- --disabled-login \
- --disabled-password \
- --group \
- --home /home/www \
- --shell /bin/false \
- --system
- rule adduser log-www \
- --disabled-login \
- --disabled-password \
- --group \
- --home /home/www/log \
- --shell /bin/false \
- --system
- #sudo adduser www www-data
- sudo adduser www log-www
- #sudo adduser log log-www
- usermod --home /home/www/pub www-data
- sudo install -d -m 751 -o www -g www \
- /home/www
- sudo install -d -m 750 -o www -g www \
- /home/www/etc
- sudo install -d -m 1771 -o www-data -g www-data \
- /home/www/pub
- sudo install -d -m 1771 -o log-www -g log-www \
- /home/www/log
- }
rule_nginx_configure () {
local -; set +f
rule apt_get_install nginx
# de leurs groupes supplémentaires.
sudo service nginx restart
}
+rule_nsd3_configure () { # NOTE: DNS autoritaire uniquement
+ local -; set +f
+ rule apt_get_install nsd m4
+ sudo rm -rf \
+ /etc/nsd3/zone.d
+ sudo install -d -m 750 -o root -g nsd \
+ /etc/nsd3/zone.d
+ {
+ cat <<-EOF
+ server:
+ ip-address: $vm_ipv4
+ ip4-only: yes
+ EOF
+ cat "$tool"/etc/nsd3/nsd.conf
+ local conf
+ for conf in "$tool"/etc/nsd3/zone.d/*.conf
+ do conf=${conf#"$tool"/etc/nsd3/zone.d/}
+ local domain=${conf%.conf}
+ if test -e "$tool"/etc/nsd3/zone.d/"$domain".zone.m4
+ then m4 \
+ --define=ZONE_DOMAIN=$domain \
+ --define=ZONE_SERIAL=$(cd "$tool" && git log -1 --format="%ct" -- etc/nsd3/zone.d/"$domain".zone.m4) \
+ --define=VM_IP4=$vm_ipv4 \
+ "$tool"/etc/nsd3/zone.d/"$domain".zone.m4
+ else cat "$tool"/etc/nsd3/zone.d/"$domain".zone
+ fi |
+ sudo install -m 440 -o root -g nsd /dev/stdin \
+ /etc/nsd3/zone.d/"$domain".zone
+ sudo install -m 440 -o root -g nsd \
+ "$tool"/etc/nsd3/zone.d/"$conf" \
+ /etc/nsd3/zone.d/"$conf"
+ cat <<-EOF
+ zone:
+ name: $domain
+ zonefile: /etc/nsd3/zone.d/$domain.zone
+ EOF
+ done
+ } |
+ sudo install -m 640 -o root -g nsd /dev/stdin \
+ /etc/nsd3/nsd.conf
+ sudo service nsd3 restart
+ }
rule_php5_fpm_configure () {
local -; set +f
rule apt_get_install \
do sudo gpg --import "$key"
done
}
+rule_www_configure () {
+ rule adduser www \
+ --disabled-login \
+ --disabled-password \
+ --group \
+ --home /home/www \
+ --shell /bin/false \
+ --system
+ rule adduser log-www \
+ --disabled-login \
+ --disabled-password \
+ --group \
+ --home /home/www/log \
+ --shell /bin/false \
+ --system
+ #sudo adduser www www-data
+ sudo adduser www log-www
+ #sudo adduser log log-www
+ usermod --home /home/www/pub www-data
+ sudo install -d -m 751 -o www -g www \
+ /home/www
+ sudo install -d -m 750 -o www -g www \
+ /home/www/etc
+ sudo install -d -m 1771 -o www-data -g www-data \
+ /home/www/pub
+ sudo install -d -m 1771 -o log-www -g log-www \
+ /home/www/log
+ }
rule_configure () {
rule apt_configure
rule git_configure
rule php5_fpm_configure
rule nginx_configure
#rule apache2_configure
+ rule nsd3_configure
rule runit_configure
}